package so.sao.shop.supplier.domain;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 订单详情
 * </p>
 *
 * @author 透云-中软-西安项目组
 * @since 2017-07-19
 */
public class PurchaseItem {
    /**
     * 详情编号
     */
    private String detailsId;
    /**
     * 商品属性
     */
    private String goodsAttribute;
    /**
     * 商品编号
     */
    private Long goodsId;

    /**
     * 商品条码
     */
    private String code69;

    /**
     * 商品数量
     */
    private Integer goodsNumber;
    /**
     * 商品单价
     */
    private BigDecimal goodsUnitPrice;
    /**
     * 商品成本价
     */
    private BigDecimal goodsCostsPrice;
    /**
     * 商品总价
     */
    private BigDecimal goodsTatolPrice;
    /**
     * 商品优惠
     */
    private BigDecimal goodsFavourable;
    /**
     * 商品图片
     */
    private String goodsImage;
    /**
     * 商品名称
     */
    private String goodsName;
    /**
     * 订单ID
     */
    private String orderId;
    /**
     * 品牌名称
     */
    private String brandName;

    /**
     * 合并支付ID
     */
    private String payId;

    /**
     * SKU折扣
     * @return
     */
    private BigDecimal goodsDiscount;

    /**
     * 退款金额
     */
    private BigDecimal returnMoney;

    /**
     * 子订单状态
     */
    private Integer status;

    /**
     * 退换货原因
     */
    private String returnReason;

    /**
     * 退换货说明
     */
    private String returnRemarks;

    /**
     * 供应商拒绝退换货申请原因
     */
    private String refuseReason;

    /**
     * 退换货标记 0退货1换货
     */
    private Integer type;

    /**
     * 退换货单号
     */
    private String returnNumber;

    /**
     * 退换货申请时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date applyForTime;

    /**
     * 供应商审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date checkTime;

    /**
     * 退回商品时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date returnTime;

    /**
     * 退款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date returnMoneyTime;

    /**
     * 换货时供应商发货时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date sendTime;
    public String getDetailsId() {
        return detailsId;
    }

    public void setDetailsId(String detailsId) {
        this.detailsId = detailsId;
    }

    public String getGoodsAttribute() {
        return goodsAttribute;
    }

    public void setGoodsAttribute(String goodsAttribute) {
        this.goodsAttribute = goodsAttribute;
    }

    public Long getGoodsId() {
        return goodsId;
    }

    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }

    public String getCode69() {
        return code69;
    }

    public void setCode69(String code69) {
        this.code69 = code69;
    }

    public Integer getGoodsNumber() {
        return goodsNumber;
    }

    public void setGoodsNumber(Integer goodsNumber) {
        this.goodsNumber = goodsNumber;
    }

    public BigDecimal getGoodsUnitPrice() {
        return goodsUnitPrice;
    }

    public void setGoodsUnitPrice(BigDecimal goodsUnitPrice) {
        this.goodsUnitPrice = goodsUnitPrice;
    }

    public BigDecimal getGoodsTatolPrice() {
        return goodsTatolPrice;
    }

    public void setGoodsTatolPrice(BigDecimal goodsTatolPrice) {
        this.goodsTatolPrice = goodsTatolPrice;
    }

    public BigDecimal getGoodsFavourable() {
        return goodsFavourable;
    }

    public void setGoodsFavourable(BigDecimal goodsFavourable) {
        this.goodsFavourable = goodsFavourable;
    }

    public String getGoodsImage() {
        return goodsImage;
    }

    public void setGoodsImage(String goodsImage) {
        this.goodsImage = goodsImage;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public String getBrandName() {
        return brandName;
    }

    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }

    public String getPayId() {
        return payId;
    }

    public void setPayId(String payId) {
        this.payId = payId;
    }

    public BigDecimal getGoodsDiscount() {
        return goodsDiscount == null ? BigDecimal.valueOf(0.00) : goodsDiscount;
    }

    public void setGoodsDiscount(BigDecimal goodsDiscount) {
        this.goodsDiscount = goodsDiscount == null ? BigDecimal.valueOf(0.00) : goodsDiscount;
    }

    public BigDecimal getReturnMoney() {
        return returnMoney;
    }

    public void setReturnMoney(BigDecimal returnMoney) {
        this.returnMoney = returnMoney;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getReturnReason() {
        return returnReason;
    }

    public void setReturnReason(String returnReason) {
        this.returnReason = returnReason;
    }

    public String getReturnRemarks() {
        return returnRemarks;
    }

    public void setReturnRemarks(String returnRemarks) {
        this.returnRemarks = returnRemarks;
    }

    public String getRefuseReason() {
        return refuseReason;
    }

    public void setRefuseReason(String refuseReason) {
        this.refuseReason = refuseReason;
    }

    public Integer getType() {
        return type;
    }

    public void setType(Integer type) {
        this.type = type;
    }

    public String getReturnNumber() {
        return returnNumber;
    }

    public void setReturnNumber(String returnNumber) {
        this.returnNumber = returnNumber;
    }

    public Date getApplyForTime() {
        return applyForTime;
    }

    public void setApplyForTime(Date applyForTime) {
        this.applyForTime = applyForTime;
    }

    public Date getCheckTime() {
        return checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public Date getReturnTime() {
        return returnTime;
    }

    public void setReturnTime(Date returnTime) {
        this.returnTime = returnTime;
    }

    public Date getReturnMoneyTime() {
        return returnMoneyTime;
    }

    public void setReturnMoneyTime(Date returnMoneyTime) {
        this.returnMoneyTime = returnMoneyTime;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

    public BigDecimal getGoodsCostsPrice() {
        return goodsCostsPrice;
    }

    public void setGoodsCostsPrice(BigDecimal goodsCostsPrice) {
        this.goodsCostsPrice = goodsCostsPrice;
    }
}
